import request from "./request.js";

/**
 * 登录接口
 * @param {*} params 
 * @returns 
 */
export function loginPost(params) {
    return request({
        url: '/user/login',
        method: 'post',
        data: params,
    })
}

/**
 * 验证码接口（注册）
 * @param {邮箱} data 
 * @returns 
 */
export function GetCode(data = {}){
    return request({
        method: "post",
        url: "/user/requestForCode",
        data
    })
}

/**
 * 注册
 * @param {*} data 
 * @returns 
 */
export function Register(data = {}){
    return request({
        method: "post",
        url: "/user/register",
        data
    })
}

/**
 * 忘记密码_判断用户是否存在（第一步）
 * @param {*} data 
 * @returns 
 */
export function isUserExist(data = {}){
    return request({
        method: "post",
        url: "/user/isUserExist",
        data
    })
}

/**
 * 验证码接口（忘记密码）
 * @param {邮箱} data 
 * @returns 
 */
export function GetForCode(data = {}){
    return request({
        method: "post",
        url: "/user/requestForgetCode",
        data
    })
}

/**
 * 忘记密码-未登录前
 * @param {*} data 
 * @returns 
 */
export function ForgetPassword(data = {}){
    return request({
        method: "post",
        url: "/user/forgetpassword",
        data
    })
}

/**
 * 修改密码-登录后
 * @param {*} data 
 * @returns 
 */
export function ModifyPassword(data = {}){
    return request({
        method: "post",
        url: "/user/change",
        data
    })
}


/**
 * 表格接口
 * @param {*} params 
 * @returns 
 */
export function TableData(params={}) {
    return request({
        url: params.url,
        method: params.method,
        data: params.data,
    })
}

/**
 * 
 * @param { method } String 请求类型 
 * @param { url } String 请求地址 
 * @param { data } Object 请求参数 
 * @description BasisTable组件公共接口 
 */
export function CommonApi(params = {}){
    return request({
        method: params.method,
        url: params.url,
        data: params.data
    })
}


/**
 * 添加项目信息
 * @param {data} data 
 * @returns 
 */
export function InfoCreate(data){
    return request({
        method: "post",
        url: "/projectmanage/addProjectInfo",
        data,
        // headers: {
		// 	'Content-Type': 'multipart/form-data',
		// 	'request-ajax': true,
		// },
    })
} 

/**
 * 添加项目信息成功后启动分析
 * @param {data} data 
 * @returns 
 */
export function InfoAnalysis(data){
    return request({
        method: "post",
        url: "/projectmanage/analysis",
        data,
    })
} 

/**
 * 更新（编辑）项目信息
 * @param {data} data 
 * @returns 
 */
export function InfoEdit(data = {}){
    return request({
        method: "post",
        url: "/projectmanage/updateInfo",
        data
    })
}
/**
 * 获取表格项目行详情
 * @param {userid,projectid} data 
 * @returns 
 */
export function GetDetailed(data = {}){
    return request({
        method: "post",
        url: "/projectmanage/getDetail",
        data
    })
}

/**
 * 文件重新上传
 * @param {*} data 
 * @returns 
 */
export function UploadFile(data = {}){
    return request({
        method: "post",
        url: "/projectmanage/upload",
        data
    })
}

/**
 * 获取项目整体信息
 * @param {*} params 
 * @returns 
 */
export function getProjectWholeInfo(params = {}){
    return request({
        method: "get",
        url: "/projectview/wholeinfo/whole",
        params
    })
}

/**
 * 获取单个文件的整体信息
 * @param {projectid,fileid} params 
 * @returns 
 */
export function getProjectSingleInfo(params = {}){
    return request({
        method: "get",
        url: "/projectview/wholeinfo/single",
        params
    })
}

/**
 * 获取项目源码信息
 * @param {*} params 
 * @returns 
 */
export function getProjectCodeInfo(params = {}){
    return request({
        method: "post",
        url: "/projectview/codeinfo",
        params
    })
}

/**
 * 获取方法调用关系信息（整个项目）
 * @param {*} params 
 * @returns 
 */
export function getProjectCallInfo(params = {}){
    return request({
        method: "get",
        url: "/projectview/callgraph",
        params
    })
}
/**
 * 获取方法调用关系信息（单个文件）
 * @param {*} params 
 * @returns 
 */
export function getFileCallInfo(params = {}){
    return request({
        method: "get",
        url: "/projectview/callgraphsingle",
        params
    })
}

/**
 * 获取方法调用相关信息
 * @param {*} params 
 * @returns 
 */
export function getCallFunctionInfo(params = {}){
    return request({
        method: "get",
        url: "/projectview/functionCall",
        params
    })
}